const app = getApp()

Page({
  data: {
    // 搜索选项
    searchData: {
      page: 1,
      limit: 4,
      video_type: '',
    },
    List: [],
    noData: false,
    // 视频数据
    videoList: [],
    activeId: 0,
    activeTimeStamp: 0,
    isPlaying: false,
    // 视频内容
    video: {},
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.getSystemInfo({
      success: res => {
        this.setData({
          systemInfo: res,
          menuButtonBoundingClientRect: wx.getMenuButtonBoundingClientRect(),
        })
      },
    })

    this.data.videoList = wx.getStorageSync("currentVideoInfo")

    console.log("currentVideoInfo:", this.data.videoList)

    this.data.noData = this.data.videoList.length == 0 ? true : false

    this.setData({
      videoList: this.data.videoList,
      noData: this.data.noData,
    })
  },
  // 监听页面显示
  onShow: function (options) {

  },

  onVideoClick(e) {
    console.debug(e)
  },

  // 滑动切换完成时触发
  onChange(e) {
    this.setData({
      activeId: e.detail.activeId
    })
    console.debug("滑动切换完成时触发 activeId：" + e.detail.activeId)
    console.debug("滑动切换完成时触发 timeStamp：" + e.timeStamp)
    console.debug("滑动切换完成时触发 type：" + e.type)
    this.setData({
      // videoList:that.this.videoList.concat(this.data.list)
    })
  },
  // 开始/继续播放时触发
  onPlay(e) {
    let index = e.detail.activeIndex
    this.data.activeId = e.detail.activeId
    this.data.activeTimeStamp = e.timeStamp
    this.data.video = this.data.videoList[index]
    this.setData({
      video: this.data.video
    })
    console.debug(this.data.video)
    console.debug("开始/继续播放时触发 activeId：" + e.detail.activeId)
    console.debug("开始/继续播放时触发 timeStamp：" + e.timeStamp)
    // this.data.videoList.forEach(function (ctx, index) {
    //   ctx.seek(0) //重新开始播放
    //   index !== current ? ctx.pause() : ctx.play();
    // })
  },
  onShowPause(e) {
    this.setData({
      isPlaying: false
    })
  },
  onHidePause(e) {
    this.setData({
      isPlaying: true
    })
  },
  // 暂停播放时触发
  onPause(e) {
    console.debug("暂停播放时触发 activeId：" + e.detail.activeId)
    console.debug("暂停播放时触发 timeStamp：" + e.timeStamp)
    console.debug("暂停播放时触发 type：" + e.type)
  },
  // 播放到末尾时触发
  onEnded(e) {
    console.debug("播放到末尾时触发 activeId：" + e.detail.activeId)
    console.debug("播放到末尾时触发 timeStamp：" + e.timeStamp)
    console.debug("播放到末尾时触发 type：" + e.type)
  },

  // 视频出现缓冲时触发
  onWaiting(e) {
    // 提示一个努力加载中
    console.debug("视频出现缓冲时触发 activeId：" + e.detail.activeId)
    console.debug("视频出现缓冲时触发 timeStamp：" + e.timeStamp)
    console.debug("视频出现缓冲时触发 type：" + e.type)
    console.debug("视频出现缓冲时触发 changedTouches：" + e.changedTouches)
  },
  // 视频播放出错时触发
  onError(e) {
    app.showToast("视频播放出错时触发")
  },
  // 视频元数据加载完成时触发
  onLoadedMetaData(e) {
    // 会自动加载此条视频 和 与此条视频相邻的两条视频，加载完成时返回加载完毕的视频信息
    // console.debug("视频元数据加载完成时触发 activeId：" + e.detail.activeId)
    // console.debug("视频元数据加载完成时触发 timeStamp：" + e.timeStamp)
    // console.debug("视频元数据加载完成时触发 type：" + e.type)
  },
  // 播放进度变化时触发
  onTimeUpdate(e) {
    // 只要视频处于播放状态，则一致触发播放进度变化状态
  },
  // 加载进度变化时触发，只支持一段加载
  onProgress(e) {
    // 只要当前视频没有加载完成，则一直触发此家在进度变化方法
  },

  // 获取视频列表
  getVideoList() {
    app.request(app.config.getDouyinList, {
      page: this.data.searchData.page,
      list: this.data.searchData.limit,
    }, 'GET', res => {
      if (res.status === 200) {
        let count = res.data.list.length
        let list = res.data.list
        if (count) {
          this.data.noData = false
          for (let i = 0; i < count; i++)
            this.data.List.push(list[i])
        } else {
          this.data.noData = true
        }
        this.setData({
          videoList: this.data.List,
          noData: this.data.noData,
        })
        console.debug(this.data.List)
      } else {
        app.showToast(res.msg)
      }
    })
  },
})